//package com.zmn.plat.dubbo.impl.product.item;
//
//import java.util.List;
//import java.util.stream.Collectors;
//
//import javax.annotation.Resource;
//import javax.validation.Valid;
//import javax.validation.constraints.NotNull;
//
//import com.zmn.common.constant.GlobalConsts;
//import com.zmn.plat.common.dto.product.pricelist.ProductPriceListDRO;
//import org.apache.dubbo.config.annotation.Service;
//import org.springframework.beans.BeanUtils;
//
//import com.alibaba.fastjson.JSON;
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.manager.common.database.annotation.ReadOnlyConnection;
//import com.zmn.plat.business.interfaces.product.item.ItemBService;
//import com.zmn.plat.business.interfaces.service.item.ServiceItemBService;
//import com.zmn.plat.common.dto.product.item.ItemDIO;
//import com.zmn.plat.common.dto.product.item.ItemDRO;
//import com.zmn.plat.common.dto.product.item.ItemPriceDIO;
//import com.zmn.plat.common.dto.product.item.ItemPriceDRO;
//import com.zmn.plat.common.dto.service.item.ProductServiceItemDRO;
//import com.zmn.plat.common.dto.service.item.ServiceItemDRO;
//import com.zmn.plat.common.exception.PlatException;
//import com.zmn.plat.dubbo.interfaces.product.item.ItemListRemoteService;
//import com.zmn.plat.dubbo.utils.DubboConsts;
//
//import lombok.extern.slf4j.Slf4j;
//
///**
// * @author tanghongjun
// * @version v1.0 @类说明：
// * @since 2020年3月30日16:31:13
// */
//@Service(version = DubboConsts.INTERFACE_VERSION, validation = "true")
//@Slf4j
//public class ItemListRemoteServiceImpl implements ItemListRemoteService {
//
//    private static final String TAG = "服务项 dubbo 接口";
//
//    @Resource
//    ServiceItemBService faultItemBService;
//    @Resource
//    ItemBService itemBService;
//
//    @Override
//    @ReadOnlyConnection
//    public ResponseDTO<ItemDRO> getByKey(Integer itemId) {
//        log.info("getByKey 参数为itemId:{}", itemId);
//
//        try {
//            ServiceItemDRO faultItemDRO = faultItemBService.getById(itemId);
//            ItemDRO itemDRO = new ItemDRO();
//            BeanUtils.copyProperties(faultItemDRO, itemDRO);
//            return ResponseDTO.success(itemDRO);
//        } catch (PlatException e) {
//            return ResponseDTO.fromErrorCodeTable(e.getErrorCode());
//        } catch (Exception e) {
//            log.error("getByKey error.itemId={}", itemId, e);
//            return ResponseDTO.fail(GlobalConsts.FAILD_MSG);
//        }
//
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public ResponseDTO<ProductPriceListDRO> getProductPriceListByDIO(@NotNull(message = "入参不能为空") @Valid ItemDIO itemDIO) {
//        log.info("getProductPriceListByDIO 参数为：{}", itemDIO);
//
//        try {
//            ProductPriceListDRO productPriceListByDIO = itemBService.getProductPriceListByDIO(itemDIO);
//            return ResponseDTO.success(productPriceListByDIO);
//        } catch (PlatException e) {
//            return ResponseDTO.fromErrorCodeTable(e.getErrorCode());
//        } catch (Exception e) {
//            log.error("listByDIO error.参数为：{}", itemDIO);
//            return ResponseDTO.fail(GlobalConsts.FAILD_MSG);
//        }
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public ResponseDTO<List<ItemDRO>> listSpecialByCategIdList(List<Integer> categIds) {
//        log.info("listSpecialByCategIdList参数为categIds:{}", categIds);
//
//        try {
//            List<ProductServiceItemDRO> dro = faultItemBService.listByCategIdList(categIds,null);
//            List<ItemDRO> itemDROS = dro.stream().map(productFaultItemDRO -> {
//                ItemDRO itemDRO = new ItemDRO();
//                BeanUtils.copyProperties(productFaultItemDRO, itemDRO);
//                return itemDRO;
//            }).collect(Collectors.toList());
//            return ResponseDTO.success(itemDROS);
//        } catch (PlatException e) {
//            return ResponseDTO.fromErrorCodeTable(e.getErrorCode());
//        } catch (Exception e) {
//            log.error("listSpecialByCategIdList error.参数为categIds:{}", categIds, e);
//            return ResponseDTO.fail(GlobalConsts.FAILD_MSG);
//        }
//
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public ResponseDTO<List<ItemDRO>> listByDIO(ItemDIO itemDIO) {
//        log.info("listProductFaultItemPriceByDIO 参数为：{}", itemDIO);
//
//        try {
//            List<ItemDRO> dros = itemBService.listItemByDIO(itemDIO);
//            return ResponseDTO.success(dros);
//        } catch (PlatException e) {
//            return ResponseDTO.fromErrorCodeTable(e.getErrorCode());
//        } catch (Exception e) {
//            log.error("listByDIO error.参数为：{}, e:{}, ex:{}", itemDIO, e, e.getMessage());
//            return ResponseDTO.fail(GlobalConsts.FAILD_MSG);
//        }
//    }
//
//    @Override
//    @ReadOnlyConnection
//    public ResponseDTO<List<ItemPriceDRO>> listTotalPriceByDIO(List<ItemPriceDIO> list) {
//        log.info("listTotalPriceByDIO 参数为：{}", JSON.toJSONString(list));
//        try {
//            List<ItemPriceDRO> dros = itemBService.listTotalPriceByDIO(list);
//            return ResponseDTO.success(dros);
//        } catch (PlatException e) {
//            return ResponseDTO.fromErrorCodeTable(e.getErrorCode());
//        } catch (Exception e) {
//            log.error("listTotalPriceByDIO error. 参数为：{}", JSON.toJSONString(list), e);
//            return ResponseDTO.fail(GlobalConsts.FAILD_MSG);
//        }
//    }
//}
